let socket = null;
/**
 * websocket对象
 */
const ws = {
    /**
     * 初始化ws对象
     * 
     * @param {*} url websocket连接地址
     * @param {func} callback ws接受到的消息回调函数
     */
    init: (url, callback) => {
        if (!url) {
            throw "ws连接地址不得为空"
        }
        if (!callback) {
            throw "ws回调函数难道不需要吗？"
        }
        //判断浏览器是否支持webSocket
        if (window.WebSocket) {
            //创建websocket对象
            // socket = new WebSocket("ws://192.168.1.5:8080/ws");
            socket = new WebSocket(url);

            socket.onopen = _ => {
                console.log("ws连接建立成功");
            };
            socket.close = _ => {
                console.log("ws连接关闭");
            };
            socket.onerror = _ => {
                console.log("ws发生异常");
            };
            window.onload;
            socket.onmessage = e => {
                console.log("ws接收到消息:", e.data);
                callback(JSON.parse(e.data));
            }
        } else {
            console.error("您的浏览器不支持websocket协议")
            alert("您的浏览器不支持websocket协议");
        }
    },

    /**
     * 发送消息
     * 
     * @param {*} msg 待发送消息对象
     */
    send: msg => {
        const sendMsg = JSON.stringify(msg);
        if (socket.readyState === WebSocket.OPEN) {
            socket.send(sendMsg);
            console.log('ws发送的消息：' + sendMsg)
        }
    }
};
/**
 * 导出websocket对象
 * 使用步骤：
 * 0、引入ws，如：import ws from '../../../utils/websocket';// 注意相对路径
 * 1、初始化websocket对象。同时传入websocket的连接地址与接受消息的回调函数
 * 2、调用ws.send(msg)。发送消息
 */
export default ws;